package pe.com.hermes.hermetic.modelo.dao;


import java.sql.SQLException;

import java.util.ArrayList;
import java.util.List;

import pe.com.hermes.hermetic.beans.OperRealBean;
import pe.com.hermes.hermetic.beans.OperRealResuBean;
import pe.com.hermes.hermetic.beans.OperacionesAtmBean;
import pe.com.hermes.hermetic.beans.RepoMontosCustodiaBean;
import pe.com.hermes.hermetic.beans.ReporteMovDiarioBean;
import pe.com.hermes.unidadesnegocio.operaciones.entities.CompServAtmEntity;
import pe.com.hermes.unidadesnegocio.procesamiento.entities.CompServOperEntity;


public interface CServicioDAO {
       
    public List getCS(String numero, String serie, String codcliente, String sucursal);

    public List getBilletesMonedas(String numero, String serie, 
                                   String tipoUnidad, String tipo);
    public List getBilletesMonedas(String numero, String serie, 
                                   String tipoUnidad, String tipo, String codBove, String cs);                                   

    public String contiene(String numero, String serie, String unidad);
    
    public String contiene(String numero, String serie, String unidad, String codBove);

    public String diceContener(String numero, String serie);

    public String anomalias(String numero, String serie);

    public String montoDeno(String numero, String serie);

    public List getDetalleAno(String numero, String serie);
    
    public List getDetalleAno(String numero, String serie, String codBove);

    public String getEntradaSalida(String fechaDesde, String fechaHasta, 
                                   String cliente, String cuenta, 
                                   String boveda, String sucursal);

    public List getEntradasSalidasAgencias(String cliente, String sucursal, 
                                           String fechaDesde, 
                                           String fechaHasta);

    public List getEntradasSalidasAgenciasReporteExcel(String cliente, String sucursal, 
                                            String fechaDesde, 
                                            String fechaHasta);

    public List getRemesasPorProcesar(String fechaDesde, String cliente, 
                                      String cuenta, String boveda, 
                                      String sucursal);

    public List getServicioCompensacion(String fechai, String fechah, 
                                        String sucursal, String cliente, 
                                        String punto);

    public List getServicioCompensacionTotal( final String fechai, final String fechah, 
                                        final String sucursal, final String cliente, 
                                        final String punto);

    public List getPiezasProcesadas(String fechaDesde, String fechaHasta, 
                                    String sucursal, String cliente, 
                                    String moneda);

    public List getActasAnomalia(String sucursal, String fechaDesde, 
                                 String fechaHasta, String cliente);

    public List getDetalleRecojo(String fechaDesde, String fechaHasta, 
                                 String cliente, String codigo, 
                                 String sucursal);

    public List getIngresosSalidasGral(String sucursales, String clientes, 
                                       String cuentas, String bovedas, 
                                       String tipoUnidMone, String tipoFormTras,
                                       String tipoClie,String clieBanc,
                                       String fechaDesde,String fechaHasta,
                                       String tipoOperacion) throws Exception;

    public List getResultadoApertuConso(final String sucursal, final String cliente,
                                         final String cuenta, final String boveda, 
                                         final String codPunt, final String tipOper,                                          
                                         final String fechaDesde, final String fechaHasta, final String isAtmActive);

    public List getServiciosAgencia(String servicio, String fechaDesde, 
                                    String fechaHasta, String cliente, 
                                    String sucursal);
                                    
    public List getServiciosAgenciaMultiple(final String servicio, final String listaCodPuntos, final String fechaDesde, 
                                    final String fechaHasta, final String cliente, 
                                    final String sucursal);                                    

    public List getRecojo(String fechaDesde, String fechaHasta, 
                          String sucursal, String cliente);

    public List getEnvio(String fechaDesde, String fechaHasta, 
                         String sucursal, String cliente);

    public List getFaltantesSobrantesPorPunto(String cliente, String sucursal,
                                        String cuenta, String boveda, 
                                        String fec_desde, String fec_hasta) throws SQLException;

    public List getFaltantesSobrantesPorAgen(String cliente, String sucursal,
                                        String cuenta, String boveda, 
                                        String fec_desde, String fec_hasta) throws SQLException;

    public List getBilletesRecontados(String cliente, String sucursal, String cuenta, 
                                      String boveda, String punto, String tipOrig, 
                                      String tipRemi, String billetaje, String fechadesde, 
                                      String fechahasta,final String tipoReporte) throws SQLException;
    public ArrayList getConsolidadoBilletesRecontados(final String cliente,final String sucursal, 
                                      final String cuenta,final String boveda, 
                                      final String punto,final String tipOrig, 
                                      final String tipRemi,final String billetaje, 
                                      final String fechadesde,final String fechahasta) throws SQLException;
    
    public List getSaldosPorDia(final String cliente,final String sucursal, 
                                      final String cuenta,final String boveda, 
                                      final String fechadesde,final String fechahasta) throws SQLException;                                      
                                      
    public List getDetalleRecojoMultiple(final String fechaDesde, final String fechaHasta, 
                                         final String cliente, final String listCodMatriz, final String listCodPunto, 
                                         final String sucursal);                                      
                                         
    public List getDetalleAperturaSobre(final String cliente, final String sucursal, final String cuenta, 
                                        final String modulo,  final String serie,    final String numero,                                        
                                        final String fechaDesde, final String fechaHasta, final String chkAnom,
                                        final String listCodPunto); 
                                        
    public List getDetalleAperturaSobreMultiple(final String cliente, final String sucursal, final String listCodCuenta, 
                                        final String listCodModulo,  final String serie,    final String numero,                                        
                                        final String fechaDesde, final String fechaHasta, final String chkAnom,
                                        final String listCodPunto);                                      
                                         
    public List getListBillRecoIngr(String codClie,String codSucuHtb,String listCnta,String listBove,String listPtos,String listMatrices,String listDenos, String tipOrig,String tipPuntOrig,String tipCS,String fecProcAperDesde,String fecProcAperHsta);
    public List getListBillRecoEnvi(String codClie,String codSucuHtb,String listCnta,String listBove,String listPtos,String listMatrices,String listDenos, String tipOrig,String tipPuntOrig,String tipCS,String fecProcAperDesde,String fecProcAperHsta);
    //Nuevos metodos J.Rivera 09/05/2011
    public List getListIngSalApoyoFinanciero  (String sucursales, String cliente, 
                                                String cuentas, String tipoUnidMone, 
                                                String bovedas, String fechaDesde,
                                                String fechaHasta,String indTipo,String listaBancos,String tipClie,String tipoOper) throws Exception;
                                                
    public double getSaldoInicialApoyoFinanciero(String sucursal,String cliente,
                                                 String cuenta, String tipoUnidMone,
                                                 String bovedas,String fechaDesde,
                                                 String indTipo)   throws Exception; 
    
    public List validarCntasApoyoFinan(String cuentas,String cliente,String sucursal) throws Exception;                                             
    
    public List getRepoHistoCabecera(String codCliente,String codSucursal,String codCuenta,
                                     String tipoUnidMone,String fechaProc,String codBove) throws Exception;
    
    public List getRepoHistoDetalle(String id,String codRepo) throws Exception;
                                     
    public List getRepoHistoResumen(String id,String codRepo) throws Exception;                                 
    
    //Fin nuevos metodos J.Rivera 09/05/2011                                             
    
     public List getActaAnomalia(String serie, String tipo, String cmpb);
     
     public String getDesNotaActa(String tipoActa, String nseSecu, String codSecc, String nsePosi);
     
     public String getDesTipoActa(String codGrupTipo, String codClasActa);
     
     public String getFechaProcesoActa(String serieActa, String tipoDocuActa, String numActa, String fechaProc);

     public String getRemitenteActa(String serieActa, String tipoDocuActa, String numActa, String puntoOrigen, String nomClie);

     public String getNumUnicActaImp(String serieActa, String tipoDocuActa, String numActa, String codEmplImp, String codClasActa);

     public List  getActaImpr(String serieActa, String tipoDocuActa, String numActa, String numUnicActa);     
     
     public String getObsvActa(String codAnom, String tipoAnom, String txtObsv, String numBill);
     
     public String getDiferenciaActa(String serieActa, String tipoDocuActa, String numActa, String codBove, String difeActa);
     
     public String eliminaActaTemp(String numUnicActa);
     
     public String getDescClase(String codClasActa);
     
     public String getSeriales(String serieActa, String tipoDocuActa, String numActa);
     
     public String getNombreFirma(String codEmplImp);     
     
     public List getListMovDiarioAgen(String codSucu,String codClie,String codCnta,String codBove,
                                      String fechaDesde,String fechaHasta);
    
     public List getListMovDiarioClie(String codSucu,String codClie,String codCnta,String codBove,String fechaDesde,String fechaHasta);
                                      
     public List getResuMovDiario(String codSucu,String codClie,String codCnta,String codBove,String fechaDesde,String fechaHasta);                                 
    
     public String getSaldoTotalMultiSucuMap(String codClie,String codSucu,String codCnta,String codBove,String fecProcAper,int pInfo);

     public ReporteMovDiarioBean getCalcContemRepoDiar(String codSucu,String codClie,String codCnta,String codBove,String fechaDesde,String fechaHasta);

     public List<RepoMontosCustodiaBean> getSaldosMontoCustodia(String codSucuHtb,String codClie,String codCnta,String codBove,String tipOper,String fecDesd,String fecHast);
     
     public List<RepoMontosCustodiaBean> getSalidasMontoCustodia(String codSucuHtb,String codClie,String codCnta,String codBove,String tipOper,String fecDesd,String fecHast);
     
     public List<RepoMontosCustodiaBean> getTotalesMontoCustodia(String codSucuHtb,String codClie,String codCnta,String codBove,String tipOper,String fecDesd,String fecHast);
     
    public List<RepoMontosCustodiaBean> getListaSalidasCustodia(String codSucuHtb,String codClie,String codCnta,String fecDesd);

    public List<RepoMontosCustodiaBean> getListaSalidasCustodiaCons(String codSucuHtb,String codClie,String codCnta, String fecDesd);

    public Double getTipoCambioSolDol(String fechaDesde,String tipoCambio);
    public List<OperRealBean> getListOperRealizadas(String  sucursales, int cliente,String fechaDesde, String fechaHasta) throws Exception;
    public List<CompServAtmEntity> getListDetaRema(String  sucursales, int cliente,String fechaDesde, String fechaHasta) throws Exception;
    public List<CompServAtmEntity> getListDetaMante(String  sucursales, int cliente,String fechaDesde, String fechaHasta) throws Exception;
    public List<OperRealResuBean> getListOperacRealizResumen(String  sucursales, String cliente,String fechaDesde, String fechaHasta, int cantFalsPrda, int cantRetrRema) throws Exception;
    public List<OperRealResuBean> getListAtenRemeResu(String  sucursales, String cliente,String fechaDesde, String fechaHasta) throws Exception;
    public List<OperacionesAtmBean> getListOperacAtm(int cliente,int  sucursal,String fechaDesde, String fechaHasta) throws Exception;
    public List getListDetalleIngresos(String tipoFecha, String fechaDesde, String fechaHasta, String codCliente, String listCodPunto,String listCodBanco, String uniMond,String estado);
    public List getListIngresosSalidas(String codCliente,String uniMond,String listCodPunto,String listCodBanco,String movimiento,String fechaDesde,String fechaHasta);

    public List getListDetalleIngresos(String listCodCliente,
                                       String listCodSucusal,
                                       String listCodPunto,
                                       String codDestino,
                                       String listCodBanco,
                                       String listCodCuenta, String codOpe,
                                       String uniMond, String estado,
                                       String tipoFecha, String fechaInicio,
                                       String fechaFin);

    public List getListAbonosRealizados(String listCodClie, String listCodSucu,
                                        String listCodPunt, String listCodBand,
                                        String uniMond, String fechaIncio,
                                        String fechaHasta);
}


